home *** CD-ROM | disk | FTP | other *** search
/ Suzy B Software 2 / Suzy B Software CD-ROM 2 (1994).iso / extras / programm / gemfsc20 / gemfsc20.lzh / GEMFUNCS / RCADJUST.C < prev    next >
C/C++ Source or Header  |  1992-11-05  |  1KB  |  63 lines

  1. /**************************************************************************
  2.  * RCADJUST.C - Adjust a GRECT or VRECT rectangle to a new size.
  3.  *************************************************************************/
  4.  
  5. #include "gemfintl.h"
  6.  
  7. #ifdef GEMFAST_PROTOS
  8.   static void rc_adjust(VRECT *prect, short xadjust, short yadjust, short is_grect)
  9. #else
  10.   static void rc_adjust(prect, xadjust, yadjust, is_grect)
  11.     register VRECT *prect;
  12.     register short      xadjust;
  13.     register short      yadjust;
  14.     short              is_grect;
  15. #endif
  16. {
  17.     prect->v_x1 -= xadjust;
  18.     prect->v_y1 -= yadjust;
  19.  
  20.     if (is_grect) {
  21.         xadjust *= 2;
  22.         yadjust *= 2;
  23.     }
  24.  
  25.     prect->v_x2 += xadjust;
  26.     prect->v_y2 += yadjust;
  27.  
  28.     if (prect->v_x1 < 0) {
  29.         prect->v_x1 = 0;
  30.     }
  31.  
  32.     if (prect->v_y1 < 0) {
  33.         prect->v_y1 = 0;
  34.     }
  35.  
  36.     if (prect->v_x2 <= 0) {
  37.         prect->v_x2 = 1;
  38.     }
  39.  
  40.     if (prect->v_y2 <= 0) {
  41.         prect->v_y2 = 1;
  42.     }
  43. }
  44.  
  45. VRECT *rc_vadjust(prect, xadjust, yadjust)
  46.     VRECT *prect;
  47.     short     xadjust;
  48.     short     yadjust;
  49. {
  50.     rc_adjust(prect, xadjust, yadjust, 0);
  51.     return prect;
  52. }
  53.  
  54. GRECT *rc_gadjust(prect, xadjust, yadjust)
  55.     GRECT *prect;
  56.     short     xadjust;
  57.     short     yadjust;
  58. {
  59.     rc_adjust((VRECT *)prect, xadjust, yadjust, 1);
  60.     return prect;
  61. }
  62.  
  63.